﻿using System;
using System.Linq;
using System.Collections.Generic;
using PSE.Tools.Util.ExtensoesMetodos;
using PSE.Tools.Util.AcessoDados;
using System.Text;
using System.Data;

namespace PSE.Tools.CadastroMensagens.AcessoDados
{
    /// <summary>
    /// Classe que persiste as informações de Módulo
    /// </summary>
    public class Modulo : ResourceAccess
    {
        #region [ Métodos ]

        /// <summary>
        /// Retorna uma Lista Contendo os Módulos Existentes
        /// </summary>
        /// <returns></returns>
        public IList<Entidades.Modulo> ListarModulo()
        {
            StringBuilder sql = new StringBuilder();
            sql.Append(@"SELECT DISTINCT
                            COD_MOD,
                            NOME_MOD
                         FROM TFWDMOD
                        ORDER BY NOME_MOD ASC");

            IList<Entidades.Modulo> modulos;

            using (IDbCommand command = this.GetSqlStringCommand(sql.ToString()))
            {
                modulos = this.FindAll<Entidades.Modulo>(command,
                    i => new Entidades.Modulo
                    {
                        Id = i.GetValue<int>("COD_MOD"),
                        Nome = i.GetValue<string>("NOME_MOD")
                    }
                );
            }
            return modulos;
        }

        #endregion [ Métodos ]
    }
}
